﻿using BCCommon.OAEnums.Workflow;
using BCDto.OA.Workflow.WorkflowActivityInstance;
using BCDto.OA.Workflow.WorkflowActivityInstanceReference;

namespace BCService.OA.Workflow.WorkflowActivityInstanceBusiness
{
    /// <summary>
    /// 工作流活动实例业务
    /// </summary>
    public interface IWorkflowActivityInstanceBusinessService
    {
        /// <summary>
        /// 获取工作流实例信息（带步骤列表）
        /// </summary>
        /// <param name="workflowActivityInstanceId">工作流活动实例Id</param>
        /// <returns></returns>
        WorkflowActivityInstanceDto GetInstanceInfo(long workflowActivityInstanceId);


        /// <summary>
        /// 获取工作流实例信息
        /// </summary>
        /// <param name="workflowActivityId">工作流活动Id</param>    
        /// /// <returns></returns>
        WorkflowActivityInstanceDto GetByWorkflowActivityId(long workflowActivityId);


        /// <summary>
        /// 更新工作流实例状态信息
        /// </summary>
        /// <param name="workflowActivityInstanceId">工作流活动实例Id</param>
        /// <param name="status">活动状态</param>
        /// <returns></returns>
        WorkflowActivityInstanceDto UpdateActivityStatus(long workflowActivityInstanceId, ActivityInstanceStatus status);
        /// <summary>
        /// 获取工作流活动实例映射信息
        /// </summary>
        /// <param name="workflowActivityInstanceId">工作流活动实例Id</param>
        /// <returns></returns>
        WorkflowActivityInstanceReferenceDto GetActivityInstanceReference(long workflowActivityInstanceId);
    }
}
